﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;

namespace CamadasDados.Prestador
{
    public class csPrestador
    {
        private DB_WORCAMENTO db = new DB_WORCAMENTO();
        private SqlConnection _conexao = new SqlConnection(ConfigurationManager.ConnectionStrings["DB_WORCAMENTO_SQL"].ConnectionString);

        public DataSet pegarPestadores(int nrStatus = 0, string nrCnpj = null, string nrCpf = null, string noFantasia = null)
        {

            var ds = new DataSet();

            string query = "SELECT ";
	        query += " CO_PRESTADOR";
	        query += ", NO_FANTASIA";
            query += ",	NR_CPF";
            query += ",	NR_CNPJ";
            query += ",	DS_TEL_RESP";
            query += ",	DS_EMAIL_RESP";
            query += ",	DS_STATUS = ";
		    query += "        CASE NR_STATUS";
		    query += "         WHEN '1' THEN 'Ativo'";
		    query += "         WHEN '2' THEN 'Inativo'";
		    query += "        END";
            query += " FROM TB_PRESTADOR";
            
            query += " WHERE 1 = 1 AND NR_STATUS != 0";

            if (nrStatus != 0)
            {
                query += " AND NR_STATUS=" + nrStatus;
            }
            if (string.IsNullOrEmpty(nrCnpj) == false && nrCpf != "__.___.___/____-__")
            {
                query += " AND NR_CNPJ='" + nrCnpj + "'";
            }
            if (string.IsNullOrEmpty(nrCpf) == false && nrCpf != "___.___.___-__")
            {
                query += " AND NR_CPF='" + nrCpf + "'";
            }
            if (!string.IsNullOrEmpty(noFantasia))
            {
                query += " AND NO_FANTASIA LIKE '%" + noFantasia + "%'";
            }

            var cmd = new SqlCommand(query, _conexao);

            cmd.Connection = _conexao;

            if (_conexao.State == ConnectionState.Closed)
            {
                _conexao.Open();
            }

            var dataAdapter = new SqlDataAdapter(cmd);
            dataAdapter.Fill(ds);

            _conexao.Close();

            return ds;
        }

        public TB_PRESTADOR pegarPrestadorPorCodigo(int coPrestador)
        {
            return db.TB_PRESTADOR.Where(q=>q.CO_PRESTADOR==coPrestador).FirstOrDefault();
        }

        public void alterar(TB_PRESTADOR objPrestador, int coPrestador)
        {
            var db = new DB_WORCAMENTO();
            try
            {
                var objPrestadorOld = db.TB_PRESTADOR.Where(q => q.CO_PRESTADOR == coPrestador).FirstOrDefault();
                objPrestadorOld.NO_FANTASIA = objPrestador.NO_FANTASIA;
                objPrestadorOld.CO_CIDADE = objPrestador.CO_CIDADE;
                objPrestadorOld.NR_CPF = objPrestador.NR_CPF;
                objPrestadorOld.NR_CNPJ = objPrestador.NR_CNPJ;
                objPrestadorOld.DS_TEL_CONTATO = objPrestador.DS_TEL_CONTATO;
                objPrestadorOld.DS_TEL_RESP = objPrestador.DS_TEL_RESP;
                objPrestadorOld.DS_EMAIL_CONTATO = objPrestador.DS_EMAIL_CONTATO;
                objPrestadorOld.DS_EMAIL_RESP = objPrestador.DS_EMAIL_RESP;
                objPrestadorOld.DT_ALTERACAO = objPrestador.DT_ALTERACAO;
                objPrestadorOld.NR_STATUS = objPrestador.NR_STATUS;

                db.SaveChanges();

            }catch(System.Exception e)
            {

            }finally
            {
                db.Connection.Close();
            }

        }

        public void remover(int coPrestador)
        {
            var db = new DB_WORCAMENTO();
            try
            {
                var objPrestadorRemover = db.TB_PRESTADOR.Where(q => q.CO_PRESTADOR == coPrestador).FirstOrDefault();
                objPrestadorRemover.NR_STATUS = 0;
                db.SaveChanges();
            }
            catch (System.Exception e)
            {

            }
            finally
            {
                db.Connection.Close();
            }
        }
    }
}
